package com.bh.order.vo;

import com.bh.common.annotation.Excel;
import com.bh.order.domain.JcOrderProduct;
import com.bh.order.domain.JcOrderReceivingParty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 订单对象 jc_order
 *
 * @author slx
 * @date 2023-04-22
 */
@ApiModel("订单新增对象")
@Data
public class JcOrderAddVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 回单份数
     */
    @ApiModelProperty("回单份数")
    @Excel(name = "回单份数")
    private Integer backNumber;

    /**
     * 客户名称(零散客户)
     */
    @ApiModelProperty("客户名称(零散客户)")
    @Excel(name = "客户名称(零散客户)")
    private String customerName;

    /**
     * 客户
     */
    @ApiModelProperty("客户")
    @Excel(name = "客户")
    private Long jcCustomerId;

    /**
     * 客户类型  0:零散，1:合同
     */
    @ApiModelProperty("客户类型  0:零散，1:合同")
    @Excel(name = "客户类型  0:零散，1:合同")
    private Integer customerType;

    /**
     * 结算方式
     */
    @ApiModelProperty("结算方式")
    @Excel(name = "结算方式")
    private Integer feeType;

    /**
     * 交付方式
     */
    @ApiModelProperty("交付方式")
    @Excel(name = "交付方式")
    private Integer handoverType;

    /**
     * 是否回单
     */
    @ApiModelProperty("是否回单")
    @Excel(name = "是否回单")
    private Integer isBack;

    /**
     * 发货单号
     */
    @ApiModelProperty("发货单号")
    @Excel(name = "发货单号")
    private String relateBill1;

    /**
     * 客户单号
     */
    @ApiModelProperty("客户单号")
    @Excel(name = "客户单号")
    private String relateBill2;

    /**
     * 销售负责人
     */
    @ApiModelProperty("销售负责人")
    @Excel(name = "销售负责人")
    private String salePerson;

    /**
     * 开单日期
     */
    @ApiModelProperty("开单日期")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
    @Excel(name = "订单日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date time;

    /**
     * 运输性质
     */
    @ApiModelProperty("运输性质")
    @Excel(name = "运输性质")
    private Integer transportPro;

    /**
     * 实际到达时间
     */
    @ApiModelProperty("实际到达时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date factArriveTime;

    /**
     * 实际发运时间
     */
    @ApiModelProperty("实际发运时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际发运时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date factLeaveTime;

    /**
     * 要求到达时间
     */
    @ApiModelProperty("要求到达时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
    @Excel(name = "要求到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planArriveTime;

    /**
     * 要求发运时间
     */
    @ApiModelProperty("要求发运时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "要求发运时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planLeaveTime;

    /**
     * 起运站(出发运点)
     */
    @ApiModelProperty("起运站(出发运点)ID")
    @Excel(name = "起运站(出发运点)ID")
    private Long jcFromOrganizationId;

    /**
     * 目的站(目的网点)
     */
    @ApiModelProperty("目的站(目的网点)ID")
    @Excel(name = "目的站(目的网点)ID")
    private Long jcToOrganizationId;

    /**
     * 库分区（入库区域）
     */
    @ApiModelProperty("库分区（入库区域）ID")
    @Excel(name = "库分区（入库区域）ID")
    private Long jcZoneStoreroomId;

    /**
     * 目的运点
     */
    @ApiModelProperty("目的运点ID")
    @Excel(name = "目的运点ID")
    private Long jcEndZoneId;

    /**
     * 出发运点
     */
    @ApiModelProperty("出发运点ID")
    @Excel(name = "出发运点ID")
    private Long jcStartZoneId;

    /**
     * 所属收发货方
     */
    @ApiModelProperty("所属收发货方LIST")
    private List<JcOrderReceivingParty> orderReceivingParties;
    /**
     * 货品
     */
    @ApiModelProperty("货品list")
    private List<JcOrderProduct> orderProducts;
}
